#ifndef PDFEDITORTOOL_H
#define PDFEDITORTOOL_H


#include <QObject>
#include <QMainWindow>
#include <QApplication>

namespace pdfviewer {
class PDFEditorMainWindow;
}


class PDFEditorTool : public QObject
{
    Q_OBJECT

public:
    static PDFEditorTool* getInstance();
    static void releaseInstance();

    // 初始化应用程序
    bool initialize();

    // 显示主窗口
    void showMainWindow();

    // 隐藏主窗口
    void hideMainWindow();

    // 打开PDF文件
    void openDocument(const QString& filePath);

    // 关闭当前文档
    void closeDocument();

    // 获取主窗口指针
    QMainWindow* getMainWindow();

    // 检查是否已初始化
    bool isInitialized() const { return m_initialized; }

private:
    PDFEditorTool(QObject* parent = nullptr);
    ~PDFEditorTool();

    // 禁止拷贝和赋值
    PDFEditorTool(const PDFEditorTool&) = delete;
    PDFEditorTool& operator=(const PDFEditorTool&) = delete;

private:
    static PDFEditorTool* m_instance;
    bool m_initialized;
    pdfviewer::PDFEditorMainWindow* m_mainWindow;
    QApplication* m_application;
};

#endif // PDFEDITORTOOL_H
